package com.sgb.kjwl.di.packers;

import com.sgb.kjwl.repository.HomeRepertory;
import com.sgb.kjwl.repository.impl.HomeRepertoryImpl;
import com.sgb.kjwl.view.ui.activity.packers.EmploymentApplyActivity;
import com.sgb.kjwl.view.ui.activity.packers.EmploymentDetailActivity;
import com.sgb.kjwl.view.ui.activity.packers.FindPackersActivity;
import com.sgb.kjwl.view.ui.activity.packers.FindPeopleDetailActivity;
import com.sgb.kjwl.view.ui.activity.packers.MapFindPackersActivity;
import com.sgb.kjwl.view.ui.activity.packers.PackersActivity;
import com.sgb.kjwl.view.ui.activity.packers.PackersEmploymentActivity;
import com.sgb.kjwl.view.ui.activity.packers.PackersEngineeringCompanyActivity;
import com.sgb.kjwl.view.ui.activity.packers.PackersEngineeringTenderActivity;
import com.sgb.kjwl.view.ui.activity.packers.PackersFinanceActivity;
import com.sgb.kjwl.view.ui.activity.packers.PackersFindPeopleActivity;
import com.sgb.kjwl.view.ui.activity.packers.PackersLegalActivity;
import com.sgb.kjwl.view.ui.activity.packers.PackersMapActivity;
import com.sgb.kjwl.view.ui.activity.packers.PackersPersonDetailActivity;
import com.sgb.kjwl.view.ui.activity.packers.PackersProjectTeamActivity;
import com.sgb.kjwl.view.ui.activity.packers.PackersSearchActivity;
import com.sgb.kjwl.view.ui.activity.packers.ServicesCompanyActivity;
import com.sgb.kjwl.view.ui.activity.packers.TeamOfferDetailActivity;
import com.sgb.kjwl.view.ui.activity.packers.WorkEquipmentActivity;
import com.sgb.kjwl.view.ui.activity.packers.WorkPerformanceActivity;
import com.sgb.kjwl.view.ui.activity.packers.WorkPersonnelActivity;
import com.sgb.kjwl.view.ui.activity.self.packers.PersonShopActivity;
import com.sgb.kjwl.viewmodel.packers.EmploymentApplyModel;
import com.sgb.kjwl.viewmodel.packers.EmploymentDetailModel;
import com.sgb.kjwl.viewmodel.packers.FindPeopleDetailModel;
import com.sgb.kjwl.viewmodel.packers.MapFindPackersModel;
import com.sgb.kjwl.viewmodel.packers.PackersFinanceModel;
import com.sgb.kjwl.viewmodel.packers.PackersLegalModel;
import com.sgb.kjwl.viewmodel.packers.PackersMapModel;
import com.sgb.kjwl.viewmodel.packers.PackersModel;
import com.sgb.kjwl.viewmodel.packers.PackersPersonDetailModel;
import com.sgb.kjwl.viewmodel.packers.PackersProjectTeamModel;
import com.sgb.kjwl.viewmodel.packers.PackersSearchModel;
import com.sgb.kjwl.viewmodel.packers.TeamOfferDetailModel;
import com.sgb.kjwl.viewmodel.packers.WorkEquipmentModel;
import com.sgb.kjwl.viewmodel.packers.WorkPerformanceModel;
import com.sgb.kjwl.viewmodel.packers.WorkPersonnelModel;
import com.sgb.kjwl.viewmodel.self.packers.PersonShopModel;
import com.swgk.core.base.api.BaseApiSource;
import com.swgk.core.base.di.Activity;
import com.swgk.core.base.model.preference.BasePreferenceSource;

import dagger.Module;
import dagger.Provides;

@Module
public class PackersModule {
    private PackersProjectTeamActivity projectTeamActivity;
    private PackersPersonDetailActivity packersPersonDetailActivity;
    private PackersActivity packersActivity;
    private FindPackersActivity findPackersActivity;
    private PackersLegalActivity packersLegalActivity;
    private PackersFinanceActivity packersFinanceActivity;
    private PackersMapActivity packersMapActivity;
    private PackersSearchActivity packersSearchActivity;
    private PersonShopActivity personShopActivity;
    private ServicesCompanyActivity servicesCompanyActivity;
    private PackersEmploymentActivity packersEmploymentActivity;
    private MapFindPackersActivity mapFindPackersActivity;
    private EmploymentApplyActivity employmentApplyActivity;
    private EmploymentDetailActivity employmentDetailActivity;
    private PackersFindPeopleActivity packersFindPeopleActivity;
    private TeamOfferDetailActivity teamOfferDetailActivity;
    private WorkPerformanceActivity workperformanceactivity;
    private WorkPersonnelActivity workpersonnelactivity;
    private WorkEquipmentActivity workequipmentactivity;
    private PackersEngineeringCompanyActivity packersEngineeringCompanyActivity;
    private FindPeopleDetailActivity findPeopleDetailActivity;
    private PackersEngineeringTenderActivity packersEngineeringTenderActivity;

    public PackersModule(PackersEngineeringTenderActivity packersEngineeringTenderActivity) {
        this.packersEngineeringTenderActivity = packersEngineeringTenderActivity;
    }

    public PackersModule(FindPeopleDetailActivity findPeopleDetailActivity) {
        this.findPeopleDetailActivity = findPeopleDetailActivity;
    }

    public PackersModule(PackersEngineeringCompanyActivity packersEngineeringCompanyActivity) {
        this.packersEngineeringCompanyActivity = packersEngineeringCompanyActivity;
    }

    public PackersModule(WorkEquipmentActivity workequipmentactivity) {
        this.workequipmentactivity = workequipmentactivity;
    }

    public PackersModule(WorkPersonnelActivity workpersonnelactivity) {
        this.workpersonnelactivity = workpersonnelactivity;
    }

    public PackersModule(WorkPerformanceActivity workperformanceactivity) {
        this.workperformanceactivity = workperformanceactivity;
    }

    public PackersModule(TeamOfferDetailActivity teamOfferDetailActivity) {
        this.teamOfferDetailActivity = teamOfferDetailActivity;
    }

    public PackersModule(PackersFindPeopleActivity packersFindPeopleActivity) {
        this.packersFindPeopleActivity = packersFindPeopleActivity;
    }

    public PackersModule(EmploymentDetailActivity employmentDetailActivity) {
        this.employmentDetailActivity = employmentDetailActivity;
    }

    public PackersModule(EmploymentApplyActivity employmentApplyActivity) {
        this.employmentApplyActivity = employmentApplyActivity;
    }

    public PackersModule(MapFindPackersActivity mapFindPackersActivity) {
        this.mapFindPackersActivity = mapFindPackersActivity;
    }

    public PackersModule(PackersEmploymentActivity packersEmploymentActivity) {
        this.packersEmploymentActivity = packersEmploymentActivity;
    }

    public PackersModule(ServicesCompanyActivity servicesCompanyActivity) {
        this.servicesCompanyActivity = servicesCompanyActivity;
    }


    public PackersModule(PersonShopActivity personShopActivity) {
        this.personShopActivity = personShopActivity;
    }

    public PackersModule(PackersSearchActivity packersSearchActivity) {
        this.packersSearchActivity = packersSearchActivity;
    }

    public PackersModule(PackersMapActivity packersMapActivity) {
        this.packersMapActivity = packersMapActivity;
    }

    public PackersModule(PackersPersonDetailActivity packersPersonDetailActivity) {
        this.packersPersonDetailActivity = packersPersonDetailActivity;
    }

    public PackersModule(PackersActivity packersActivity) {
        this.packersActivity = packersActivity;
    }

    public PackersModule(PackersProjectTeamActivity projectTeamActivitys) {
        this.projectTeamActivity = projectTeamActivitys;
    }

    public PackersModule(FindPackersActivity findPackersActivity) {
        this.findPackersActivity = findPackersActivity;
    }

    public PackersModule(PackersLegalActivity packersLegalActivity) {
        this.packersLegalActivity = packersLegalActivity;
    }

    public PackersModule(PackersFinanceActivity packersFinanceActivity) {
        this.packersFinanceActivity = packersFinanceActivity;
    }

    @Provides
    @Activity
    HomeRepertory provideHomeRepertory(BaseApiSource apiSource, BasePreferenceSource preferenceSource) {
        return new HomeRepertoryImpl(apiSource, preferenceSource);
    }

    @Provides
    @Activity
    PackersPersonDetailModel providePackersPersonDetail(HomeRepertory repertory) {
        return new PackersPersonDetailModel(packersPersonDetailActivity, repertory);
    }

    @Provides
    @Activity
    PackersModel providePackers(HomeRepertory repertory) {
        return new PackersModel(packersActivity);
    }

    @Provides
    @Activity
    PackersProjectTeamModel provideProjectTeamPackers(HomeRepertory repertory) {
        return new PackersProjectTeamModel(projectTeamActivity, repertory);
    }


    @Provides
    @Activity
    PackersLegalModel providePackersLegalModel(HomeRepertory repertory) {
        return new PackersLegalModel(packersLegalActivity, repertory);
    }

    @Provides
    @Activity
    PackersFinanceModel providePackersFinanceModel(HomeRepertory repertory) {
        return new PackersFinanceModel(packersFinanceActivity, repertory);
    }

    @Provides
    @Activity
    PackersMapModel providePackersMapModel(HomeRepertory repertory) {
        return new PackersMapModel(packersMapActivity, repertory);
    }

    @Provides
    @Activity
    PackersSearchModel providePackersSearchModel(HomeRepertory repertory){
        return new PackersSearchModel(packersSearchActivity, repertory);
    }

    @Provides
    @Activity
    PersonShopModel providePersonShopModel(HomeRepertory repertory){
        return new PersonShopModel(personShopActivity, repertory);
    }


    @Provides
    @Activity
    MapFindPackersModel provideMapFindPackersModel(HomeRepertory repertory){
        return new MapFindPackersModel(mapFindPackersActivity, repertory);
    }

    @Provides
    @Activity
    EmploymentApplyModel provideEmploymentApplyModel(HomeRepertory repertory){
        return new EmploymentApplyModel(employmentApplyActivity);
    }

    @Provides
    @Activity
    EmploymentDetailModel provideEmploymentDetailModel(HomeRepertory repertory){
        return new EmploymentDetailModel(employmentDetailActivity);
    }

    @Provides
    @Activity
    TeamOfferDetailModel provideTeamOfferDetailModel(HomeRepertory repertory){
        return new TeamOfferDetailModel(teamOfferDetailActivity, repertory);
    }

    @Provides
    @Activity
    WorkPerformanceModel provideWorkPerformanceModel(HomeRepertory repertory){
        return new WorkPerformanceModel(workperformanceactivity, repertory);
    }

    @Provides
    @Activity
    WorkPersonnelModel provideWorkPersonnelModel(HomeRepertory repertory){
        return new WorkPersonnelModel(workpersonnelactivity, repertory);
    }

    @Provides
    @Activity
    WorkEquipmentModel provideWorkEquipmentModel(HomeRepertory repertory){
        return new WorkEquipmentModel(workequipmentactivity, repertory);
    }


    @Provides
    @Activity
    FindPeopleDetailModel providePackersFindPeopleDetailModel(HomeRepertory repertory){
        return new FindPeopleDetailModel(findPeopleDetailActivity);
    }

}
